package com.zy;
import com.zy.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MyBatis {
/**
 * MyBatis初始化配置代码
 * 用于创建SqlSessionFactory实例，这是MyBatis的核心接口之一
 * 通过该工厂可以创建SqlSession，执行数据库操作
 */
    public static void main(String[] args) {
    // 定义MyBatis配置文件的路径
    String resource ="mybatis-config.xml";
    // 通过Resources工具类读取配置文件，将其转换为输入流
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 使用SqlSessionFactoryBuilder构建器创建SqlSessionFactory实例
    // SqlSessionFactory是MyBatis的核心对象，用于创建SqlSession
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // 打开一个SqlSession，用于执行SQL操作
        SqlSession sqlSession=sqlSessionFactory.openSession();
        // 执行查询操作，获取所有用户列表
        // "com.zy.mapper.UserMapper.selectUserall"是映射器中的SQL语句ID
        List<User> users = sqlSession.selectList("com.zy.mapper.UserMapper.selectUserall");
        System.out.println(users);
        sqlSession.close();
    }
}
